package top.zlcode.friend.service.question;

import top.zlcode.friend.domain.question.dto.FavoriteQuestionDTO;
import top.zlcode.friend.domain.question.dto.FavoriteQueryDTO;
import top.zlcode.friend.domain.question.vo.FavoriteQuestionVO;
import top.zlcode.common.core.domain.TableDataInfo;

import java.util.List;

/**
 * 用户收藏题目Service接口
 * 
 * @author zlcode
 */
public interface IUserFavoriteQuestionService {
    
    /**
     * 切换收藏状态
     * 
     * @param dto 收藏DTO
     * @return 是否已收藏
     */
    boolean toggleFavorite(FavoriteQuestionDTO dto);
    
    /**
     * 检查是否已收藏
     * 
     * @param questionId 题目ID
     * @return 是否已收藏
     */
    boolean checkFavorite(Long questionId);
    
    /**
     * 获取用户收藏列表（分页，支持关键词搜索）
     * 
     * @param queryDTO 查询参数（包含分页和搜索关键词）
     * @return 收藏列表
     */
    List<FavoriteQuestionVO> getFavoriteList(FavoriteQueryDTO queryDTO);
}
